//#include <stdio.h>
//#include <string.h>
//#include <stdlib.h>
//
//int main() 
//{
//    char s[1000001];
//    scanf_s("%s", s);
//    int n = strlen(s);
//
//    long long* prefix = (long long*)malloc((n + 1) * sizeof(long long));
//    prefix[0] = 0;
//
//    for (int i = 0; i < n; i++) 
//    {
//        char c = s[i];
//        int score = 0;
//        switch (c) 
//        {
//        case 'P': score = 3; break;
//        case 'p': score = 2; break;
//        case 'G': score = 1; break;
//        case 'g':
//        case 'm': score = 0; break;
//        }
//        prefix[i + 1] = prefix[i] + score;
//    }
//
//    int q;
//    scanf_s("%d", &q);
//
//    while (q--) 
//    {
//        int l, r;
//        scanf_s("%d %d", &l, &r);
//        long long ans = prefix[r] - prefix[l - 1];
//        printf("%lld\n", ans);
//    }
//    free(prefix);
//    return 0;
//}

//#include <stdio.h>
//#include <stdlib.h>
//#include <limits.h>
//
//int main() 
//{
//    int n;
//    scanf_s("%d", &n);
//
//    int* a = (int*)malloc(n * sizeof(int));
//    long long total_sum = 0;
//
//    for (int i = 0; i < n; i++)
//    {
//        scanf_s("%d", &a[i]);
//        total_sum += a[i];
//    }
//
//    long long prefix_sum = 0;
//    long long min_cost = LLONG_MAX;
//
//    for (int i = 0; i < n - 1; i++) 
//    {
//        prefix_sum += a[i]; 
//        long long left_sum = prefix_sum;
//        long long right_sum = total_sum - prefix_sum;
//        long long cost = left_sum * right_sum;
//
//        if (cost < min_cost)
//        {
//            min_cost = cost;
//        }
//    }
//
//    printf("%lld\n", min_cost);
//    free(a);
//
//    return 0;
//}

#include <stdio.h>
#include <stdlib.h>

int main() 
{
    int n;
    scanf_s("%d", &n);
    const int max_index = 1000000;
    int size = max_index + 2; 
    int* diff = (int*)calloc(size, sizeof(int));
    for (int i = 0; i < n; i++) 
    {
        int a, b;
        scanf_s("%d %d", &a, &b);
        diff[a]++;  
        if (b + 1 < size) 
        {
            diff[b + 1]--; 
        }
    }
    int current = 0;    
    int max_count = 0; 

    for (int i = 0; i <= max_index; i++) 
    {
        current += diff[i]; 
        if (current > max_count) 
        {
            max_count = current; 
        }
    }
    printf("%d\n", max_count);
    free(diff);
    return 0;
}